From 2b0ad09423ce8b3e5885a8a396e37949f66e702d Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Tue, 16 May 2023 17:18:19 +0200 Subject: [PATCH] vulkan: Make projection matrix match GL MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Vulkan has a different initial coordinate system to GL. GL: (-1, 1, -1) +------+. |`. | `. | `·--|---· | : | : +------+. : `. : `.: `·------· (1, -1, 1) Vulkan: (-1, -1, 0) +------+. |`. | `. | `·--|---· | : | : +------+. : `. : `.: `·------· (1, 1, 1) so adjust the near and far plane we pass to graphene_matrix_init_ortho() to make it end up with the same projection as the GL renderer. --- gsk/vulkan/gskvulkanrenderpass.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gsk/vulkan/gskvulkanrenderpass.c b/gsk/vulkan/gskvulkanrenderpass.c index c23aa0ba7b..f364b7f4c1 100644 --- a/gsk/vulkan/gskvulkanrenderpass.c +++ b/gsk/vulkan/gskvulkanrenderpass.c @@ -157,7 +157,7 @@ gsk_vulkan_render_pass_new (GdkVulkanContext *context, graphene_matrix_init_ortho (&self->p, viewport->origin.x, viewport->origin.x + viewport->size.width, viewport->origin.y, viewport->origin.y + viewport->size.height, - ORTHO_NEAR_PLANE, + 2 * ORTHO_NEAR_PLANE - ORTHO_FAR_PLANE, ORTHO_FAR_PLANE); if (signal_semaphore != VK_NULL_HANDLE) // this is a dependent pass -- 2.30.2